<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="../../vue.js"></script>
  </head>
  <body>
    <!-- 
        v-for的基础使用
            基于源数据多次渲染元素或者模板块。此指令之值，必须使用特定语法 `item,index in data` 或者 `item,index of data`

            item和index都是属于当前列表块内部的数据，在列表块内部可以直接使用

            item是每次遍历出来的值，index是当前值的下标

            v-for一定要在列表渲染的元素上添加key属性，用户优化diff算法(如果没有key则新旧DOM默认按照顺序比较，一旦有破坏顺序的操作，则为增加额外的开销)，并且不建议key用index下标(因为按下标来的话，其实还是按照顺序比较的)

            类似于v-if，你也可以利用带有 v-for 的<template> 来循环渲染一段包括多个元素的内容

            v-for可以遍历数组，对象，字符串，数字等等数据格式
     -->
    <div id="app">
      <ul>
        <li v-for="item,index in teachers" :key="item.id">
          <h2>我的名字是{{item.name}},下标是{{index}}</h2>
          <p>我的爱好是{{item.hobby}}</p>
        </li>
      </ul>
    </div>
    <script>
      Vue.config.productionTip = false;

      const vm = new Vue({
        el: "#app",
        data() {
          return {
            teachers: [
              { id: 1, name: "余维海", hobby: "金城会所" },
              { id: 2, name: "陈伟", hobby: "888号为您服务" },
              { id: 3, name: "老李", hobby: "学习讲课" },
            ],
          };
        },
      });
    </script>
  </body>
</html>
